package cn.com.dingtek.genius.manager.server.iot;

//import com.iotplatform.client.NorthApiException;
//import com.iotplatform.client.dto.ModifyDeviceInforInDTO;
//import com.iotplatform.client.dto.RegDirectDeviceInDTO2;
//import com.iotplatform.client.dto.RegDirectDeviceOutDTO;
//import com.iotplatform.client.invokeapi.Authentication;
//import com.iotplatform.client.invokeapi.DeviceManagement;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

@Slf4j
//@Service
public class IotClient {
//    @Autowired
//    private Authentication authentication;
//    @Autowired
//    private DeviceManagement deviceManagement;
//
//    public String getAccessToken() {
//        return fectchAccessToken();
//    }
//
//    private String fectchAccessToken() {
//        try {
//            //todo refreshAuthToken
//            return authentication.getAuthToken().getAccessToken();
//        } catch (NorthApiException e) {
//            log.error("fectchAccessToken error.", e);
//        }
//
//        return null;
//    }
//
//    public boolean regDirectDevice(String imei, int timeout) {
//        String appId = deviceManagement.getNorthApiClient().getClientInfo().getAppId();
//
//        RegDirectDeviceInDTO2 in = new RegDirectDeviceInDTO2();
//        String nodeid = imei.toUpperCase();
//        String verifyCode = nodeid;
//        in.setNodeId(nodeid);
//        in.setVerifyCode(verifyCode);
//
//        in.setTimeout(timeout);
//        try {
//            RegDirectDeviceOutDTO out = deviceManagement.regDirectDevice(in, appId, getAccessToken());
//
//            String deviceId = out.getDeviceId();
//
//            ModifyDeviceInforInDTO mdiInDto = new ModifyDeviceInforInDTO();
//
//            mdiInDto.setManufacturerId("Dingtek");
//            mdiInDto.setManufacturerName("DingtekCommonDevices");
//            mdiInDto.setDeviceType("CommonDevices");
//            mdiInDto.setModel("CommonNBIoTDevice");
//            mdiInDto.setProtocolType("CoAP");
//
//            deviceManagement.modifyDeviceInfo(mdiInDto, deviceId, appId, getAccessToken());
//            return true;
//        } catch (NorthApiException e) {
//            log.error("regDirectDevice error.", e);
//        }
//        return false;
//    }
}
